home *** CD-ROM | disk | FTP | other *** search
/ PC World Interactive 7 / PC World Interactive 7.iso / program / cprog.EXE / C13.TXT < prev    next >
Text File  |  1996-07-05  |  4KB  |  135 lines

  1. BUYUK VE KUCUK HARFLER
  2.  
  3. BUY-KUC.C:
  4. ================================================================
  5. #include <STDIO.H>
  6. #include <ctype.h>   /* Not: Derleyiciniz bunu gerektirmeyebilir */
  7.  
  8. main()
  9. {
  10. FILE *fp;
  11. char satir[80], kutukismi[24];
  12. char *c;
  13.  
  14.    printf("Kutuk ismini girin -> ");
  15.    scanf("%s",kutukismi);
  16.    fp = fopen(kutukismi,"r");
  17.  
  18.    do {
  19.       c = fgets(satir,80,fp);   /* bir satir oku */
  20.       if (c != NULL) {
  21.          karistir_butun_karakterleri(satir);
  22.       }
  23.    } while (c != NULL);
  24.  
  25.    fclose(fp);
  26. }
  27.  
  28. karistir_butun_karakterleri(satir)
  29.  
  30. /* Bu fonksiyon butun buyuk harfleri kucuge, butun kucukleri 
  31. de buyuge cevirir. Diger butun karakterleri etkilemez. */
  32.  
  33. char satir[];
  34. {
  35. int index;
  36.  
  37.    for (index = 0;satir[index] != 0;index++) {
  38.       if (isupper(satir[index]))     /* buyuk harfse,1 doner */
  39.          satir[index] = tolower(satir[index]);
  40.       else {
  41.          if (islower(satir[index]))  /* kucuk harfse,1 doner */
  42.             satir[index] = toupper(satir[index]);
  43.       }
  44.    }
  45.    printf("%s",satir);
  46. }
  47. ================================================================
  48.  
  49. Bu basit programdaki yeni fonksiyonlar sunlardir:
  50.  
  51. isupper();            Karakter buyuk harfmidir?
  52. islower();            Karakter kucuk harfmidir?
  53. toupper();            Karakteri buyuk harf yap.
  54. tolower();            Karakteri kucuk harf yap.
  55.  
  56.  
  57. ilk fonksiyon, sayet parametresi olarak gecirilen deger, buyuk harf ise
  58. ('A'-'Z'), 1 degerini dondurur, sayet baska bir karakter ise, 0 degeri doner.
  59.  
  60. ikincisi, sayet parametresi kucuk harf ise, 1 degerini dondurur.
  61.  
  62. 3uncu ve son fonksiyonlar ise, parametre olarak gecirilen karakteri buyuk
  63. yada kucuk harfe degistirirler.
  64.  
  65. KARAKTERLERIN SINIFLANDIRILMASI
  66.  
  67. KARKLAS.C:
  68. ================================================================
  69. #include <stdio.h>
  70. #include <ctype.h>  /* Derleyiciniz bunu gerektirmeyebilir */
  71.  
  72. main()
  73. {
  74. FILE *fp;
  75. char satir[80], kutukismi[24];
  76. char *c;
  77.  
  78.    printf("Kutukismi -> ");
  79.    scanf("%s",kutukismi);
  80.    fp = fopen(kutukismi,"r");
  81.  
  82.    do {
  83.       c = fgets(satir,80,fp);   /* bir satir oku */
  84.       if (c != NULL) {
  85.          veriyi_say(satir);
  86.       }
  87.    } while (c != NULL);
  88.  
  89.    fclose(fp);
  90. }
  91.  
  92. satiri_say(satir)
  93. char satir[];
  94. {
  95. int beyazlar, kars, rakamlar;
  96. int index;
  97.  
  98.    beyazlar = kars = rakamlar = 0; 
  99.  
  100.    for (index = 0;satir[index] != 0;index++) {
  101.       if (isalpha(satir[index]))   /* 1 eger satir[] alfabetik ise   */
  102.           kars++;
  103.       if (isdigit(satir[index]))   /* 1 eger satir[] rakam ise     */
  104.           rakamlar++;
  105.       if (isspace(satir[index]))   /* 1 eger satir[] bosluk ise tab, */
  106.           beyazlar++;               /*           yada yeni satir ise */ 
  107.    }   /* sayan dongunun sonu */
  108.  
  109.    printf("%3d%3d%3d %s",beyazlar,kars,rakamlar,satir);
  110. }
  111. ================================================================
  112.  
  113. Bircok yerde, \n yi, yeni bir satiri belirtmek icin kullandik, fakat cok
  114. kullanilan baska kontrol karakterleri de vardir. Bu sekilde tanimlidirlar:
  115.  
  116.          \n        Yeni satir
  117.         \t        Tab
  118.         \b        Bir hane geri
  119.         \"        Cift tirnak
  120.         \\        Ters bolu
  121.         \0        NULL (sifir)
  122.  
  123. Gordugunuz program, bir karakterin tipini belirleyen fonksiyonlar
  124. kullanir. Kullandigi 3 fonksiyon sunlardir: 
  125.  
  126.  isalpha();        Karakter alfabetik mi?
  127.  isdigit();        Karakter bir rakam mi?
  128.  isspace();        Karakter \n , \t yada bosluk mu?
  129.  
  130. Program yeterince basit, bu nedenle daha fazla detaylara girmiyorum.. 
  131. Bu yeni fonksiyonlarin kullanimi da, ayni "isupper" yada "toupper"
  132. fonksiyonlari gibidir.
  133.  
  134. <EOF>
  135.